package com.doit.day01;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;

/**
 * 写一个伪代码，模拟缓存系统
 * 就用一个hashmap
 *
 * 1.new 一个hashmap作为缓存系统
 * 2.去mysql数据库中读取数据
 * 3.在查询mysql数据库之前，去缓存中找一下，是不是缓存中有，如果有，直接返回，如果没有再去查询数据库
 */
public class _01_缓存 {
    public static void main(String[] args) throws Exception {
        //1.这就是一个缓存系统
        HashMap<String, String> map = new HashMap<>();

        //查询数据库
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        PreparedStatement pps = conn.prepareStatement("select password from user_info where name = ?");

        for (int i = 0; i < 1000; i++) {
            //在查询mysql数据库查询之前，要去查询一下缓存
            String password = map.get(i + "");
            if (password != null){
                //返回结果
                System.out.println(password);
            }//代表缓存中没有，就需要查询数据库
            else {
                pps.setString(1,i+"");
                //查询mysql数据库
                ResultSet resultSet = pps.executeQuery();
                resultSet.next();
                String pass = resultSet.getString("name");
                System.out.println(pass);
                //当缓存里面没有的时候，在mysql查询到了结果，记得往缓存里面存一份
                map.put(i+"",pass);
            }


        }




    }
}
